/**
 * Fichier PseudoEnseignement.java : Définition de classe
 * fr.unice.gnpt.gui.util.PseudoEnseignement : Services non assignés
 * 
 * Auteurs : Groupe GNPT : Gastinel, Nicolas, Pellegrino, Trovato
 */
package fr.unice.gnpt.gui.util;

import fr.unice.gnpt.core.Cours;

/**
 * Classe de représentation des Services non assignés.
 * 
 * @author gnpt
 * @version 0.0.1
 */
public class PseudoEnseignement {

	private Cours cours;

	/**
	 * Constructeur par défaut
	 */
	public PseudoEnseignement() {
		/*
		 * on crée un cours vide pour éviter les NullPointerException si aucun
		 * cours n'a été affecté à cette instance.
		 */
		this(new Cours());
	}

	/**
	 * Constructeur d'un pseudo service depuis un cours
	 * 
	 * @param cours
	 *            le cours duquel dépend ce pseudo-service
	 */
	public PseudoEnseignement(Cours cours) {
		this.cours = cours;
	}

	/**
	 * Accesseur pour le cours enveloppé dans cette classe.
	 * 
	 * @return le cours
	 */
	public Cours getCours() {
		return this.cours;
	}

	/**
	 * Mutateur pour le cours enveloppé dans cette classe.
	 * 
	 * @param cours
	 *            le nouveau cours
	 */
	public void setCours(Cours cours) {
		this.cours = cours;
	}

	/**
	 * Accesseur indiquant si le cours magistral reste à prendre.
	 * 
	 * @return {@code true} si oui, {@code false} sinon.
	 */
	public boolean isCmLibre() {
		return !this.cours.cmEnCharge();
	}

	/**
	 * Accesseur pour le nombre de groupes de TD non affectés à un Enseignant.
	 * 
	 * @return le nombre de groupes de TD libres.
	 */
	public int getGroupesTDLibres() {
		return this.cours.getNbGroupeTDRestant();
	}

	/**
	 * Accesseur pour le nombre de groupes de TP non affectés à un Enseignant.
	 * 
	 * @return le nombre de groupes de TP libres.
	 */
	public int getGroupesTPLibres() {
		return this.cours.getNbGroupeTPRestant();
	}
}
